import type { ApiResponse, User } from '../../../types';
import { verifyToken } from '../../utils/jwt';

/**
 * 获取用户个人资料的API端点
 * 根据项目简单权限模式，这是一个公开接口，但需要验证用户身份
 */
export default defineEventHandler(async (event): Promise<ApiResponse<User>> => {
  try {
    // 从请求头中获取令牌
    const authHeader = getHeader(event, 'authorization');
    if (!authHeader || !authHeader.startsWith('Bearer ')) {
      return {
        success: false,
        message: '未授权访问',
        data: undefined
      };
    }
    
    const token = authHeader.substring(7); // 移除 'Bearer ' 前缀
    const user = await verifyToken(token);
    
    if (!user) {
      return {
        success: false,
        message: '无效或过期的令牌',
        data: undefined
      };
    }
    
    // 返回用户信息
    return {
      success: true,
      message: '获取用户资料成功',
      data: user
    };
  } catch (error) {
    console.error('获取用户资料错误:', error);
    return {
      success: false,
      message: '获取用户资料失败',
      data: undefined
    };
  }
});